package com.zzyl.service;

import com.zzyl.base.PageResponse;
import com.zzyl.dto.AlertRuleDto;
import com.zzyl.vo.AlertRuleVo;

public interface AlertRuleService {
    /**
     * 新增报警规则
     * @param alertRuleDto
     */
    void createRule(AlertRuleDto alertRuleDto);

    /**
     * 分页查询报警规则
     * @param pageNum
     * @param pageSize
     * @param alertRuleName
     * @param productKey
     * @param functionName
     * @return
     */
    PageResponse<AlertRuleVo> getAlertRulePage(Integer pageNum, Integer pageSize, String alertRuleName, String productKey, String functionName);

    /**
     * 根据ID获取单个告警规则
     * @param id
     * @return
     */
    Object readAlertRuleById(Long id);

    /**
     * 更新告警规则
     * @param id
     * @param alertRuleDto
     */
    void updateAlertRule(Long id, AlertRuleDto alertRuleDto);

    /**
     * 删除告警规则
     * @param id
     */
    void deleteAlertRule(Long id);

    /**
     * 启用/禁用
     * @param id
     * @param status
     */
    void enableOrDisable(Long id, Integer status);
}
